System and method of personalized navigation inside a business enterprise

ABSTRACT

Systems and methods for tracking movement of individuals through a building receive, by one or more RF nodes disposed near an entrance to the building, RF signals from RF-transmitting mobile devices carried by persons near the entrance, capture an image of the persons while they are near the entrance, determine an identity and relative distance of each RF-transmitting mobile device from each RF node based on information associated with the RF signals received by that RF node, detect humans in the image, determine a relative depth of each human in the image, and assign the identity of each RF-transmitting mobile device to one of the humans detected in the image based on the relative distance of each RF-transmitting mobile device from each RF node and the relative depth of each human in the image, thereby identifying each individual who to be tracked optically as that individual moves throughout the building.

CROSS-REFERENCE TO RELATED APPLICATIONS

This is a continuation application of U.S. patent application Ser. No. 17/964,268, filed Oct. 21, 2022, titled “System and Method of Personalized Navigation Inside a Business Enterprise,” which is a continuation application of U.S. patent application Ser. No. 17/307,254, filed May 4, 2021, issued as U.S. Pat. No. 11,506,501 titled “System and Method of Personalized Navigation Inside a Business Enterprise,” which is a continuation application of U.S. patent application Ser. No. 16/857,399, filed Apr. 24, 2020, issued as U.S. Pat. No. 11,022,443, titled “System and Method of Personalized Navigation Inside a Business Enterprise,” which is a continuation application of U.S. patent application Ser. No. 16/658,951, filed Oct. 21, 2019, issued as U.S. Pat. No. 10,634,506, titled “System and Method of Personalized Navigation Inside a Business Enterprise,” which is a continuation-in-part application of U.S. patent application Ser. No. 16/163,708, filed Oct. 18, 2018, issued as U.S. Pat. No. 10,455,364, titled “System and Method of Personalized Navigation Inside a Business Enterprise,” which is a continuation-in-part application of U.S. patent application Ser. No. 15/839,298, filed Dec. 12, 2017, issued as U.S. Pat. No. 10,634,503, titled “System and Method of Personalized Navigation Inside a Business Enterprise,” which claims the benefit of and priority to under 35 U.S.C. § 119(e) of U.S. Provisional Application No. 62/432,876 titled “System and Method of Personalized Navigation Inside a Business Enterprise,” filed on Dec. 12, 2016, the entireties of which patent applications and provisional application are herein incorporated by reference for all purposes.

FIELD OF THE INVENTION

The invention relates generally to systems and methods for providing personalized navigation for people while inside certain business enterprises.

BACKGROUND

A common complaint among shoppers is that they are often frustrated by not knowing where certain items are located within the store. They wander about inefficiently through the aisles searching for items on their shopping list, often retracing steps, taking the long path in their quest of the desired items.

SUMMARY

According to one embodiment, the invention relates to a system for tracking locations of individuals in a building. The system comprises at least one radiofrequency (RF) node disposed near an entrance to the building. The at least one RF node has an RF receiver to receive RF signals from RF-transmitting devices near the entrance to the building. At least one optical device disposed near the entrance to the building, the at least one optical device capturing an image of a plurality of persons while the plurality of persons is near the entrance to the building. A controller is in communication with the at least one RF node to obtain therefrom information associated with the RF signals received by the RF receiver of that at least one RF node and in communication with the at least one optical device to obtain therefrom the captured image. The controller is configured to determine an identity of each RF-transmitting device and an angular position of that RF-transmitting device with respect to each RF node of the at least one RF node based on the information associated with the RF signals obtained by the controller from that RF node of the at least one RF node. The controller is further configured to detect an orientation marker and a plurality of humans in the image obtained by the controller from the at least one optical device and to assign the identity of each RF-transmitting device to one of the plurality of humans detected in the image based on a position of the orientation marker in the image relative to each human detected in the image and on the determined angular position of that RF-transmitting device with respect to each RF node of the at least one RF node. Thereby, each individual is identified who is to be located optically as that individual moves throughout the building.

In one example embodiment, the at least one RF node is configured to determine a relative signal strength indicator (RSSI) value for the RF signals received from each RF-transmitting device. The information obtained by the controller from the at least one RF node includes the RSSI values. The controller is configured to estimate a distance of each RF-transmitting device from each RF node based on the RSSI values for the RF signals received by that RF node from that RF-transmitting device and to use the estimated distance of each RF-transmitting device from each RF node when assigning the identity of each RF-transmitting device to one of the plurality of humans detected in the image.

In another example embodiment, the controller is further configured to detect in the image a mobile phone held by one of the plurality of humans detected in the image and to assign the identity of each RF-transmitting device to one of the plurality of humans detected in the captured image based on the which of the plurality of humans detected in the image is holding the detected mobile phone.

In another example embodiment, the controller is further configured to arrange, for each RF node, the RF-transmitting mobile devices in an angular order based on the angular positions of the RF-transmitting mobile devices from that RF node, arrange the humans captured in the image into an angular order based on relative positions of the plurality of humans detected in the captured image, and compare the angular order of humans detected in the captured image with the angular order of the RF-transmitting mobile devices when assigning the identity of each RF-transmitting mobile device to one of the plurality of humans detected in the captured image. The controller may be further configured to arrange the angular order of the plurality of humans in the captured image to be in respect to the at least one RF node before the angular order of humans detected in the image is compared with the angular order of the RF-transmitting mobile devices.

In yet another example embodiment, the system further comprises a plurality of optical devices disposed throughout the building, and wherein the controller is further configured to optically track each identified individual through the building based on detecting that identified individual in images received from at least some of the plurality of optical devices over time.

In yet another example embodiment, the information carried by RF signals transmitted by a given RF-transmitting mobile device includes a shopping list. The controller may be further configured to determine a route through the building based on items on the shopping list and transmit the route to the given RF-transmitting mobile device for display on a screen of the given RF-transmitting mobile device.

As another example, the system further comprises a plurality of optical devices disposed throughout the building, and the controller is further configured to optically track each identified individual through the building based on detecting that identified individual in images received from at least some of the plurality of optical devices over time.

In other examples, the information carried by RF signals transmitted by a given RF-transmitting mobile device includes a shopping list. The controller may be further configured to determine a route through the building based on items on the shopping list and transmit the route to the given RF-transmitting mobile device for display on a screen of the given RF-transmitting mobile device. The at least one RF node may comprise two or more RF nodes.

In another example, the controller is further configured to compute a location for each RF-transmitting mobile device based on the angular positions of the RF-transmitting mobile devices received from the at least one RF node, to arrange the RF-transmitting mobile devices in a depth order based on the computed locations of the RF-transmitting mobile devices with respect to the at least one RF node, to arrange the humans captured in the image into a depth order based on relative positions of the plurality of humans detected in the captured image, and to assign the identity of each RF-transmitting mobile device to one of the plurality of humans detected in the captured image by comparing the depth order of humans detected in the image with the depth order of the RF-transmitting mobile devices.

According to another embodiment, the invention relates to a method for tracking locations of individuals in a building. The method comprises receiving, by at least one radiofrequency (RF) node disposed near an entrance to the building, RF signals from RF-transmitting mobile devices carried by a plurality of persons near the entrance to the building. An image is captured of the plurality of persons while the plurality of persons is near the entrance to the building. An identity of each RF-transmitting mobile device and an angular position of each RF-transmitting mobile device from each RF node are determined based on information associated with the RF signals received by the at least one RF node. A plurality of humans and an orientation marker are detected in the captured image. The identity of each RF-transmitting mobile device is assigned to one of the plurality of humans detected in the captured image based on a position of the orientation marker in the image relative to each human detected in the image and on the determined angular position of each RF-transmitting mobile device with respect to each RF node, thereby identifying each individual who is to be located optically as that individual moves throughout the building.

In one example embodiment, a relative signal strength indicator (RSSI) value is determined for the RF signals received from each RF-transmitting device, an estimated distance of each RF-transmitting device from each RF node is computed based on the RSSI values for the RF signals received by that RF node from that RF-transmitting device, and the estimated distance of each RF-transmitting device from each RF node is used when assigning the identity of each RF-transmitting device to one of the plurality of humans detected in the image.

In one example embodiment, a mobile phone held by one of the plurality of humans is detected in the image, and assigning the identity of each RF-transmitting device to one of the plurality of humans detected in the captured image is based on the which human detected in the image is holding the detected mobile phone.

In another example embodiment, the RF-transmitting mobile devices are arranged in an angular order based on the angular positions of the RF-transmitting mobile devices with respect to the at least one RF node, and the humans captured in the image are arranged into an angular order based on relative positions of the plurality of humans detected in the captured image, and assigning the identity of each RF-transmitting mobile device to one of the plurality of humans detected in the captured image includes comparing the angular order of humans detected in the image with the angular order of the RF-transmitting mobile devices. The angular order of humans in the captured image may be rearranged to be in respect to the at least one RF node before the angular order of humans detected in the captured image is compared with the angular order of the RF-transmitting mobile devices.

In another example embodiment, a location of each identified individual is optically tracked through the building by comparing successive images that capture that identified individual.

In still another example embodiment, the information associated with the RF signals transmitted by a given RF-transmitting mobile device includes a shopping list. A route through the building may be determined based on items on the shopping list, and the route may be transmitted to the given RF-transmitting mobile device for display on a screen of the given RF-transmitting mobile device.

In yet another example embodiment, radio signals carrying a current location of a given identified individual within the building may are transmitted from the at least one RF node to the RF-transmitting mobile device carried by that given identified individual.

In still another example embodiment, a location for each RF-transmitting mobile device is computed based on the angular positions of the RF-transmitting mobile devices received from the at least one RF node. The RF-transmitting mobile devices are arranged in a depth order based on the computed locations of the RF-transmitting mobile devices with respect to the at least one RF node. The humans detected in the captured image are arranged into a depth order based on relative positions of the humans detected in the captured image. Assigning the identity of each RF-transmitting mobile device to one of the plurality of humans detected in the captured image includes comparing the depth order of humans detected in the image with the depth order of the RF-transmitting mobile devices.

According to another embodiment, the invention relates to a system for tracking locations of individuals in a building. The system comprises at least one radiofrequency (RF) node disposed near an entrance to the building. The at least one RF node has an RF receiver channel to receive RF signals from a plurality of RF-transmitting devices near the entrance to the building. The system further comprises at least one camera disposed near the entrance to the building. The at least one camera captures an image of a plurality of persons while the plurality of persons is near the entrance to the building. A controller of the system is in communication with the at least one RF node to obtain therefrom information associated with the RF signals received by the RF receiver channel of that at least one RF node and in communication with the at least one camera to obtain therefrom the captured image. The controller is configured to determine an identity of each RF-transmitting device and a position of that RF-transmitting device relative to each RF node of the at least one RF node based on the information associated with the RF signals obtained by the controller from that RF node of the at least one RF node, to detect a plurality of humans in the image obtained by the controller from the at least one camera, to detect an orientation marker in the image, and to assign the identity of each RF-transmitting device to one of the plurality of humans detected in the image based on a position of the orientation marker in the image relative to each human detected in the image and on the determined position of that RF-transmitting device relative to each RF node of the at least one RF node.

Still other aspects, embodiments, and advantages of these exemplary aspects and embodiments are discussed in detail below. Embodiments disclosed herein may be combined with other embodiments in any manner consistent with at least one of the principles disclosed herein, and references to “an example”, “an embodiment,” “some embodiments,” “an alternate embodiment,” “various embodiments,” “one embodiment” or the like are not necessarily mutually exclusive and are intended to indicate that a particular feature, structure, or characteristic described may be included in at least one embodiment. The appearances of such terms herein are not necessarily all referring to the same embodiment.

BRIEF DESCRIPTION OF THE DRAWINGS

Various aspects of at least one embodiment are discussed below with reference to the accompanying figures, which are not intended to be drawn to scale. The figures are included to provide illustration and a further understanding of the various aspects and embodiments and are incorporated in and constitute a part of this specification but are not intended as a definition of the limits of the invention. In the figures, each identical or nearly identical component that is illustrated in various figures is represented by a like numeral. For purposes of clarity, not every component may be labeled in every figure. In the figures:

FIG. 1 is a block diagram of an example of a personalized navigation system according to certain aspects of the present invention;

FIG. 2 is a diagram of an example a floor plan of a business enterprise configured with a personalized navigation system according to certain aspects of the present invention;

FIG. 3 is an example display of the floor plan of the business enterprise as it may appear on the screen of the mobile device carried by the shopper according to certain aspects of the present invention; and

FIG. 4 is a diagram illustrating an example of a system including a shelf camera and an aisle camera tracking a shopper in front of a retail shelf within the business enterprise, according to aspects of the present invention.

FIG. 5 is a diagram illustrating an example of a personalized navigation system configured to distinguish among multiple persons disposed at the entrance of the business enterprise.

FIG. 6 is a flow diagram of an embodiment of a process for distinguishing among multiple persons located at the entrance of the business enterprise.

FIG. 7 is a flow diagram of another embodiment of a process for distinguishing among multiple persons located at the entrance of the business enterprise.

DETAILED DESCRIPTION

Personalized navigation systems according to certain aspects and embodiments use a combination of radiofrequency (RF) technology and optical imaging technology to identify and track persons at business enterprises, and software to provide the persons with individualized information and an individualized navigation experience within the business enterprise. As discussed in more detail below, a person can provide the personalized navigation system with information, such as a shopping list or service request, for example, and receive personalized navigation or other information in response to aid the person in efficiently completing their objective(s) at the business enterprise. In this manner, the person's experience at the business enterprise and can be improved.

According to one embodiment, a personalized navigation system uses RF technology to initially identify a shopper who approaches an entrance to the business enterprise and uses optical technology to detect and track movement of the shopper after the shopper arrives at and enters the business enterprise. To cooperate with the navigation system, the shopper carries a mobile device (e.g., a smartphone or smart watch) with RF transmitting and RF receiving capability. In certain embodiments, the mobile device runs certain application software that transmits RF signals containing an identity of the shopper and the shopper's shopping list. The shopper can acquire the application software and download it to the mobile device from an “app store”. Many business enterprises are currently equipped with RF transmitters, RF receivers, and video cameras, and advantageously, the navigation systems described herein do not require any hardware modifications to this existing RF and video equipment.

FIG. 1 shows an example of a personalized navigation system 100 configured to operate in a business enterprise 110 with at least one RF node 120. Any number of RF nodes, designated 120-1 to 120-n (n being a positive integer number), may be included. Each RF node 120-1 to 120-n includes a corresponding RF receiver antenna 130-1, 130-n (generally, 130). Optionally, each RF node 120 can also have an RF transmit antenna (not shown). Each RF node 120 can be placed at or near an entrance to the business enterprise 110. Examples of the business enterprise 110 include, but are not limited to, grocery stores, supermarkets, department stores, hardware stores, warehouses, and retail stores. In general, the location of the RF node 120 near the entrance of the business enterprise 110 facilitates detection of an RF-transmitting mobile device 140 associated with a person approaching the entrance, provided that the mobile device 140 is running application software that provides personalized navigation of the business enterprise, as described herein. The mobile device 140 engages in communication with one or more of RF nodes 120 using a wireless communication technology, such as Bluetooth®, Wi-Fi, or Near Field Communication (NFC). If the business enterprise 110 has multiple entrances, with at least one RF node 120 disposed near each entrance, the personalized navigation system 100 can be aware of which entrance the person is entering based on which RF node 120 detects the mobile device 140.

During typical operation, a person with the mobile device 140 approaches an entrance to the business enterprise (i.e., a building) 110. The mobile device 140 runs a personalized navigation app and transmits RF signals. In certain examples the RF signals carry an identifier associated with the person by which an operator of the business enterprise 110 knows the person. For example, the identifier may include the person's name, a telephone number, a rewards program number connected with the business enterprise, or other identifying information. The RF signals may also carry the person's shopping list identifying those items that the person wishes to find upon visiting the business enterprise 110. Typically, the person may prepare this shopping list before visiting the business enterprise 110; however, the shopping list can be constructed or edited at any time before or after the person arrives at the business enterprise 110.

When the person comes into range of an RF receiver antenna 130, the mobile device 140 establishes communications with the RF node 120. In particular, in certain examples the mobile device 140 may pass to the RF node 120 the identifier and shopping list. The mobile device may also or alternatively pass other data to the RF node 120, such as a set of instructions or other information for a technician or similar repair staff performing certain services at the business enterprise 110, for example. In certain examples, the RF node 120 forwards the identifier and shopping list or other data to a computer processing unit (also called a controller) 150, which can use this identifier to access a database 160 where information relating to the person associated with the identifier is kept. This information can include records of prior visits to the business enterprise 110 by the person, for example. Although the computer processing unit 150 and database 160 are shown in FIG. 1 to be within the business enterprise 110, they may reside instead at other sites, such as on a third-party network of computers and servers referred to broadly as “the cloud.”

FIG. 2 shows a simple example of a floor plan 200 of the business enterprise 100 with various aisles 210-1 through 210-7 (generally, 210) and video cameras 220-1 through 220-n (generally 220) placed throughout the store, preferably to provide full coverage of the interior of the business enterprise 100, wherever visitors may walk. The business enterprise 100 can also include one or more RF transmitters 230 and a networking device 240. Each video camera 220, each RF node 120, and each RF transmitter 230 is in communication with the networking device 240 by a wireless or wired communication link (not shown). The networking device 240 is in communication with the computer processing unit 150 (shown in FIG. 1 as discussed above), which in one embodiment resides on the cloud 250. A wired or wireless communication link 260 connects the networking device 240 to the central processing unit 150.

As discussed above, tracking of persons within the business enterprise 110 can be accomplished using optical technology; in particular, by capturing and processing images from the video cameras 220 located throughout the business enterprise 110. According to one embodiment, during typical operation of the personalized navigation system, the video cameras 220 continuously capture images within their fields of view. At least one video camera 220 can be placed proximate each entrance of the business enterprise 110 to acquire images of persons entering the business enterprise. In some embodiments, multiple video cameras 220 can be placed proximate each entrance in such a way as to provide a complete field of view, or at least a functionally sufficient field of view, of the area around the entrance such that images of all persons entering the business enterprise 110 can be acquired. As discussed above, when a person having a mobile device 140 configured to run the application software to engage with the personalized navigation system 110 (referred to as a tracked person) arrives at an entrance to the business enterprise 110 the RF node 120 at that entrance receives the identifier, and optionally other information (such as the shopping list), from the mobile device 140. At the same time, the video camera(s) 220 proximate that entrance capture images of the area around the entrance, and at least some of these images should contain the tracked person. As discussed above, in certain examples, the computer processing unit 150 knows which entrance a person used to enter the enterprise 110 based on which RF node 120 detected the person and known locations of each RF node. Accordingly, the computer processing unit 150 knows which video camera or cameras 220 are in position to capture images of the person. These video cameras 220 pass their captured images to the networking device 240, which sends the captured images to the central processing unit 150. The central processing unit 150 includes an image processor that performs image processing techniques adapted to detect a person within the image and to associate the detected person with the most recently acquired identifier and shopping list.

Techniques for processing images to identify a person within the images are known in the art, and any such image processing techniques can be implemented by the central processing unit 150. For example, the image processor can be adapted to examine images captured by the video camera 220-1 positioned at the relevant entrance for a smartphone in the hand of an individual, which may indicate that the individual is engaging with the personalized navigation system 100. Alternatively, or in conjunction, the image processor can be adapted to examine the captured images for the head or hands of a person. Since the central processing unit 150 expects the next person to fall within the field of view of the video camera 220-1 located at the entrance to be the same as the person who communicated with the RF node 120-1 located at that entrance, that detected person becomes associated with received identifier and shopping list. Once a person has been identified in an image and associated with the received identifier, the personalized navigation system 100 tracks and guides the person as he or she moves through the business enterprise 110.

Tracking can be accomplished by collecting images from the various video cameras 220 located amongst the aisles 210 and processing these images to follow the tracked person. In certain examples the central processing unit 150 follows the movement of the tracked person as her or she moves from one camera field of view to another, dynamically registering and updating the location of the person within the business enterprise 110. In one example the video cameras 120 operate in parallel, with all or some of the video cameras providing images to the central processing unit simultaneously. The images can be merged into a map or layout of the business enterprise 110, such as shown in FIG. 2 . In some examples two or more of the video cameras 220 can have at least partially overlapping fields of view, and in other examples different video cameras 220 are used to monitor different areas of the business enterprise 110. The video cameras 220 may capture images with different perspectives. The central processing unit may flatten the images by removing perspective distortion in each of them, and merges the resulting corrected images into the map. Image stitching techniques can be used to merge the images.

In certain examples, an image stitching process first performs image alignment using algorithms that can discover the relationships among images with varying degrees of overlap. These algorithms are suited for applications such as video stabilization, summarization, and the creation of panoramic mosaics, which can be used in the images taken from the cameras 220. After alignment is complete, image-stitching algorithms take the estimates produced by such algorithms and blend the images in a seamless manner, while taking care of potential problems, such as blurring or ghosting caused by parallax and scene movement as well as varying image exposures inside the business enterprise 110. Various image stitching algorithms and processes are known in the art, and any such image processing techniques can be implemented by the central processing unit 150.

A handoff can be made when a tracked person moves from one viewpoint to another or is seen by one camera 220 and not the others. These handoffs may be made using the images running in parallel on the central processing unit 150, with the tracked person's location and movement determined by the central processing unit using whichever camera 220 has the best view of the tracked person.

In certain examples, the video cameras 220 can include depth sensors. In such examples, the image stitching operation can be omitted, and each camera stream data is processed independently for change, person detection and recognition. Then, the resulting “areas of interest” are converted to individual point clouds (described further below) and transformed in to a single common coordinate system. The translation and rotation transformations used for this process are based on the position and orientation of the video cameras (and their associated depth sensors) in relation to one another. In one example, one camera is picked as the main sensor and all other camera data is transformed into the main coordinate system, achieving the same end result as the image stitching procedure, namely, unification of the actual location of the tracked person among sensors.

In some examples the central processing unit 150 may use known information about the floor plan of the business enterprise to assist with identifying and tracking persons based on the images acquired from the video cameras 220. For example, the central processing unit can use known shapes and positions of shelving along the aisles 210 to provide reference points. At times, a tracked person may be occluded in a camera's field of view, for example, by another person, equipment, or shelving. The personalized navigation system 100 can be configured to store the tracked person's prior-determined position and compare multiple image frames to re-locate the tracked person after a temporary occlusion. As discussed further below, the personalized navigation system 100 can be configured to provide a proposed route for the tracked person through the business enterprise 110, and therefore the central processing unit can use a predicted future location of the tracked person to relocate the person after a temporary occlusion.

According to certain embodiments, the central processing unit 150 can run an image-processing process, optionally supplemented with depth information, to track a person as discussed above. A two-dimensional (2D) optical image capture device (i.e., a video camera 220) with a single aperture is capable of capturing 2D image information on a plane (film, CCD, etc.). To acquire three-dimensional (3D) information typically requires acquisition of additional data. Three-dimensional data can be acquired using multiple video cameras 220 or by combining one or more video cameras with one or more depth sensors. The video cameras 220 can utilize visible light, infrared light, or other optical wavelength ranges. Depth sensors can be based on infrared, laser or other wavelength emitters that transmit light to an object. Depth sensors typically determine the distance to the object from which the light that is reflected or backscattered. Alternatively, depth sensors can utilize acoustic signals to determine distance. In one embodiment, depth sensing is integrated into the video cameras 220.

Image frames are acquired from the video cameras 220. A video camera system with depth sensing capability typically outputs video (e.g., RGB, CYMG) and depth field information. Video may optionally be encoded to a well-known format, such as MPEG. The optical and depth information are stitched together. Open libraries such as OpenCV or OpenNI (used to capture depth images) enable the optical and depth information to be stitched together. Alternatively, a user of the personalized navigation system 100 may develop customized software for generating 3D information or object data generated by optical images and depth sensors.

An initial calibration can be performed over multiple image frames to determine background information both for 2D optical images and the depth sensing. During the calibration, any motion (e.g., people) is extracted or ignored during background extraction until stable background optical (RGB) and depth information can be stored, for example, in the database 160. Calibration may be performed periodically or may be initiated by the personalized navigation system 100, for example, if errors are detected.

After calibration is complete, the resulting spatial filter masks can be used to extract an “area of interest” for each video camera 220. For example, for a video camera located near an entrance to the business enterprise 110, the area of interest may correspond to the area between the background and a foreground (area where a person is expected to be), so that everything that is not walls, doors, or other infrastructure (for background) and also not a detected person, is ignored. This ignoring of the background and foreground focuses on data within the depth threshold of the area of interest being monitored. Alternatively, the “area of interest” can include a different part of the scene, for example, the foreground in order to see where the person is in later recognition steps and can be expanded or contracted as system requirements dictate. In general, the area of interest applies to any cut-out of a scene that is to be the focus within which to perform person tracking.

According to certain embodiments, multiple image frames (e.g., N−1 and N) are obtained and compared, and in certain examples the image frames can include depth information in addition to RGB (color) data, as discussed above. Image and depth information can be filtered for noise and then processed to determine if a difference between two frames exists. This can be done with edge detection, threshold and difference algorithms, or other image processing techniques. In certain examples, information from the depth sensors is also processed to compare image frames. The system can use changes between image frames, in particular, changes in the position or orientation of a detected person, to track the movement of the person. In some embodiments, change detection can be limited to the area of interest to increase processing speed.

In one embodiment, when the area of interest is determined, a “point cloud” is generated using the video camera's extrinsic and intrinsic parameters through algorithms for “2D to 3D” data representation conversion preformed on the RGB and/or depth images obtained and processed through OpenNI and OpenCV. In one embodiment, the Point Cloud Library may be used. The object shape and location information generated from the Point Cloud Library are used to identify and track a person in three dimensions using edge detection, color detection, object recognition and/or other algorithms for determining the presence of a person within the scene. If object information is in the shape of a human, for example, then the process continues to track the person. However, if the size, shape or other appearance information indicates that the object is not a person, subsequent image frames can be analyzed until a person is detected. In some examples, images captured by the video cameras 220 may include more than one person. Accordingly, the process may compare expected features and/or appearance attributes of the tracked person with persons detected in the image frames to continue to track the correct person.

As discussed above, the central processing unit 150 can merge the acquired images from the video cameras 220 into a map to be able to track identified persons as they moved through the business enterprise. In certain examples, the application software running on the mobile device 140 can be configured to display the map or a similar map view or virtual layout of the floor plan of the business enterprise 110, such that the tracked person can view their location within the business enterprise. The central processing unit 150 can send commands to the RF transmitters 230—by way of the networking device 240—to transmit RF signals carrying the updated location of the tracked person, which can be determined using image processing techniques as discussed above. The mobile device 140—with its RF receiver—receives these signals and registers the updated location of the person within the application software, which can show the location of the person within the virtual layout of the business enterprise 110 displayed on the mobile device 140.

FIG. 3 shows an example display 300 of the floor plan of the business enterprise 110, with aisles 210, as it may appear on the screen of the mobile device 140 (FIG. 1 ) carried by the tracked person. In this example, an arrow 310 indicates the current location of the tracked person. As discussed above, the personalized navigation system 100, and the application software running on the mobile device 140, can be configured to guide the tracked person through the business enterprise based on the information received along with the identifier. For example, where a shopping list is provided, the personalized navigation system 100 can access information from the business enterprise 110 that identifies where in the aisles 210 the items on the shopping list are located. In one example, the central processing unit 150 (FIG. 1 , FIG. 2 ) examines the shopping list acquired by the initial RF communications with the mobile device 140 and accesses a database that stores the locations of all items within the business enterprise 110. The central processing unit can be further configured to match descriptions of items on the shopping list with product SKUs or other identifying information in the database to obtain a location of each item within the business enterprise 110. The database can be part of the personalized navigation system 100, obtained from an operator of the business enterprise 110 and regularly updated, or the database can be maintained by the operator of the business enterprise and accessed by the personalized navigation system (e.g., by the central processing unit 150) via the cloud 250.

In FIG. 3 , a directional dashed line 320 identifies a proposed route through the business enterprise 110. After the central processing unit 150 has examined the shopping list and identified where the desired items 330 on the shopping list are located within the business enterprise 110, a route 320 is proposed through the business enterprise for efficiently obtaining the items. In one embodiment, the route is based on the shortest distance to acquire all the items. Another route can be to direct the person to non-perishable or unrefrigerated items initially, and leaving perishable or refrigerated items for the end of the route. The central processing unit 150 sends the map and item location information to the mobile device 140 via the RF transmitters 230 (FIG. 2 ). The application software executing on the mobile device 140 displays the route 320 based on the items on the tracked person's shopping list. To supplement the positioning information and calibration provided by the video cameras, the mobile device 140 can have inertial sensors. Techniques for using inertial sensing to enhance positioning information are described in U.S. Pat. No. 8,957,812, issued Feb. 17, 2015, titled “Position Tracking System and Method using Radio Signals and Inertial Sensing,” the entirety of which U.S. patent is incorporated by reference herein. In other examples, additional RF nodes (similar to the RF nodes 120) with RF transmitting/receiving capability can be used to supplement the positioning information provided by the video cameras and enhance the tracking capability of the personalized navigation system 100.

In addition to identifying the desired items 330, the central processing unit 150 can notify the person of an item that may be of interest, as the person's current location approaches the location of that item, even if that item is not on the shopping list. Such an advertisement may be based on the shopping history of the person, for example. As discussed above, in certain examples the information provided from the mobile device 140 to the RF node 120 (and therefore to the central processing unit 150) can include a service request. Accordingly, in such examples instead of or in addition to displaying the locations of the desired items 330, the location of the service desk or other relevant information can be displayed on the map, and the route 320 can be configured to guide the person to that location.

Referring to FIG. 4 , another aspect of this disclosure is a product tracking and checkout system 400 that can keep track of products taken by customers as they shop in the business enterprise 110, integrating with the person's shopping list and also eliminating the need for shoppers to wait in cashier lines. This system 400 enables customers 410 to any or all of take products 412, 414 off of the shelves 416, put them in their cart, register the products that are taken and who took the products, automatically pay for the products and leave the store with the products purchases automatically logged by the retail system without having to go through a checkout system. Aspects of this system could improve the speed and experience of the shopping process for customers and reduce the cost of cashiers for the retailers.

For example, retailer's costs can be reduced with a system in place that automatically keeps track of inventory on shelves and/or what is taken off these shelves by customers to automatically keep track of what customers take from stores and to manage inventory on shelves. The ability to track inventory and what products customers remove from shelves can improve the cost basis for retailers by eliminating the need for cashiers or extra staff to constantly go to shelves to inspect what items need replacing and re-stocking. In addition, the system can update the shopping list received from a tracked person based on items founds and taken by the tracked person and update the displayed route 320 based on the progress made by the tracked person.

It is appreciated that variations of image processing can be used for shelf and product tracking. One aspect of the system 400 includes a product recognition camera 420 facing the shelves to view what products are on the shelf and what products are removed by customers. The system may have one or more first shelf facing cameras 420 with a view angle 422 focused on the shelf to see what products are there and what products are removed. However, there may also be situations where one or more shelf focused product recognition cameras 420 may not be sufficient as there may be times that two people reach for products in the same area, potentially even cross arms while reaching for their individual products, and/or possibly blocking the view of the one or more product tracking cameras 420 when reaching and grabbing the product on the shelf.

Thus, an embodiment of the system incorporates an additional outward looking (aisle facing) camera 430. Thus, an aspect of this embodiment of the system includes at least two cameras on an integrated arm mount 440. At least one first product tracking camera 420 is oriented to focus on the products on the shelf and at least one second aisle tracking camera 430 is oriented to focus on the aisle and the customers doing the shopping. Both cameras can be a video camera, and both cameras can be a video camera of the video cameras 220-1 through 220-n (generally 220) placed throughout the business enterprise, as discussed above, to provide full coverage of the interior of the business enterprise 110. Thus, in this embodiment, at least one camera 420 (“shelf tracking camera”) may be used primarily for product recognition on the shelf and at least one additional camera 430 (“aisle tracking camera”) may be used primarily for customer skeletal tracking to confirm where that customer is reaching.

Some advantages of this embodiment of the system 400 are that by using at least one aisle tracking camera 430 to focus into the aisle and on the shopper, the system can eliminate any occlusion issues from the shopper standing in front of the shelf-facing camera 420 or any of the other video cameras 220. In addition, the combination of the first shelf facing camera 420 and second aisle facing cameras 430 can also prevent the cameras from confusing what item was taken should two shoppers reach in the same area for products and either cross arms or occlude the camera potentially causing the system to charge the wrong customer for the item taken.

Aspects of this embodiment of the system 400 having the dual cameras can include accomplishing multiple functions from at least one first camera 420 and at least one second camera 430 including shopper registration, shopper movement tracking, and product identification on retail shelving, inventory tracking, and monitoring the amount of products on the shelving.

Typically, multiple persons may be entering and/or leaving the entrance of an enterprise at a given moment. Further, more than one of them may be operating an RF-transmitting mobile device at that moment, and an RF node of the personalized navigation system, located near the entrance, may be in communication with a plurality of them. In addition, others passing through or near the entrance at that moment may not be carrying a mobile device or may have their mobile devices are turned off. Personalized navigation systems described herein are configured to distinguish between people participating in the personalized navigation and between participants and non-participants. Unlike participants, non-participants are not interacting through RF communications with the personalized navigation system, but like participants, non-participants may still be optically tracked through the enterprise.

It is appreciated that aspects of the cameras and the system can also include color sensing, comparison and depth sensing, which can be accomplished for example with infrared sensing. The first shelf tracking camera 420 can use either or both of color and depth sensing to register the products' position and to recognize the actual products on the shelf. The second aisle tracking camera 430 can use depth sensing to perform skeletal tracking to confirm where that customer is reaching. Confirmation of which customer selected which product on the shelf is achieved by the shelf camera 420 providing product identification and removal (from shelf) detection and by the position of the person's arm in relation to the item and, upon removal, the item actually in the hand of the customer provided by the aisle camera 430. The fusing of the functions of these two cameras provides a much more robust method for confirming what was taken off the shelf and by which shopper.

FIG. 5 shows an embodiment of a personalized navigation system 100 configured to distinguish among individuals who pass through an entrance of the business enterprise 110 concurrently or next to each other. Near the entrance are located one or more RF nodes 120-1, 120-2 (generally, 120) and one or more cameras 220 (only one shown to simplify the drawing). Each RF node 120 has a corresponding RF receiver antenna 130-1, 130-n (generally, 130) and an RF transmitter (not shown). In one embodiment, each RF node 120 has an antenna array comprised of two or more antennae (or antenna elements) with known spatial separation(s). Timing differences between the RF signal received at each of the at least receiver antennae are used by the RF node to estimate angle of arrival of the RF signal. An example of a multiplexing technique for multiplexing antenna of an antenna array is described in U.S. Pat. No. 8,749,433, issued Jun. 10, 2014, titled “Multiplexing Receiver System”, the entirety of which is incorporated by reference herein.

Each RF node 120 and each camera 220 is in a fixed location and in communication with the controller 150, which knows the relative locations of each such electronic equipment (i.e., the pan and tilt angles and distance between cameras 220, between RF nodes 120, between each camera 220 and each RF node). Each camera 220 has a field of view 510 that covers an area near the enterprise entrance. As previously described, the controller 150 is configured to detect a person within an image captured by the camera(s) 220 and associate the detected person with an identifier that was transmitted by the person's mobile device and recently received by the RF node.

As illustrated in FIG. 5 , multiple persons 500-1, 500-2, 500-3 (generally, 500) are concurrently near the enterprise entrance (whether entering or leaving). Individuals 500-1 and 500-2 are carrying RF-transmitting mobile devices 140-1, 140-2, respectively. Each mobile device 140-1, 140-2 is running application software that provides personalized navigation of the business enterprise, as previously described, and is in communication with one or more of RF nodes 120-1, 120-2 using a wireless communication technology, such as Bluetooth®, Wi-Fi, or Near Field Communication (NFC). This application software may be running in the background, that is, the individual does not need to deliberately activate the application to handshake with an RF node; the application is in the background broadcasting or listening for join requests. By operating the application in the background, the mobile device 140 automatically connects with each RF node 120 upon coming into wireless communication range of it. To synchronize communications, each mobile device 140 handshakes with each RF node 120 with which it is in communication. In this example, the individual 500-3 is not carrying or not running a mobile device that is in RF communication with an RF node 120. The camera(s) 220 capture images that include all these individuals 500-1, 500-2, 500-3; that is, the controller may detect all the individuals 500-1, 500-2, 500-3 in a single captured image. As described herein, the controller 150 is configured to determine which received identifier corresponds to which person detected in the captured image, and which detected person does not have or is not using an RF-transmitting mobile device to communicate with the RF node 120.

FIG. 6 shows an embodiment of a process 600 for distinguishing among multiple persons located at the entrance of the business enterprise, at least one of which is carrying and operating an RF-transmitting mobile device. For purposes of illustration, consider that the individuals 500-2 and 500-3 pass through the entrance side-by-side and continue further indoors, whereas individual 500-1 pauses just within the entrance. The mobile devices 140-1, 140-2 of the individuals 500-1, 500-2, respectively, communicate (step 602) with the RF nodes 120-1, 120-2, sending them their identifiers, and, at about the same time or momentarily after, the camera 220 captures (step 604) an image with all three individuals in it.

Each RF node 120 derives (step 606) a received signal strength indicator (RSSI) for the radio signal received from each mobile device 140 and associates that RSSI measurement with the corresponding identifier. In general, the closer the mobile device is to the RF node 120, the stronger is the received signal. At step 608, the RF nodes send the RSSI measurements and associated identifiers, and the camera sends the captured image, to the controller. The controller associates the captured image with the RSSI measurements and associated identifiers because of the near synchronicity of when the camera captured the image and the RF nodes received the RF signals. The controller also knows the relative locations of the RF nodes to each other and to the camera and tracks which RF node sent which RSSI values.

At step 610, the controller detects the three individuals in the image and establishes a depth order of the detected individuals with respect to the camera. This determination of depth order may use depth information obtained by the camera or by a depth sensor calibrated to the camera. The controller can rearrange the depth order of humans in the image from the perspective of or in respect to each RF node, thus facilitating a comparison of that RF node's distance order, which is based on its computed RSSI values, with the depth order derived from the image captured by the camera.

In this example, the controller receives the RSSIs and identifier information for only two mobile devices. The task of the controller is to match each identifier with the proper mobile device, that is, with the appropriate one of the individuals detected in the image.

From the received signal strength indicators, the controller can compute approximate distances to the RF-transmitting sources (i.e., the mobile devices). The greater the number of RF nodes that provide RSSI values, the more precisely the controller can estimate the location of each mobile device with respect to those RF nodes (e.g., through triangulation or multilateration). Alternatively, the controller can deduce a closest-to-farthest order for the mobile devices based on their corresponding RSSI values, without computing relative location or distance estimates. The controller arranges (step 612) the RF-transmitting mobile devices in distance order with respect to the RF node 120-1 and with respect to the RF node 120-2.

Using the known locations of the RF nodes 120-1, 120-2 and the camera 220 and camera angles, the controller compares (step 614) the depth order of the persons detected in the image with the distance order(s) determined for the mobile devices based on the signal strength indicators provided by the RF nodes 120. Based on the comparison, the controller matches (step 616) identifiers with the detected individuals.

For example, based on the example locations of the individuals 500 in FIG. 5 , the RF node 120-1 determines that the signal strength of the mobile device 140-1 is greater than that of the mobile device 140-2, whereas the RF node 120-2 finds the opposite is the case. For example, the controller may compute from the RSSI values that the mobile device 140-1 is approximately 6 feet away from the RF node 120-1 and approximately 9 feet away from the RF node 120-2 and that the mobile device 140-2 is approximately 11 feet away from the RF node 120-1 and approximately 4 feet away from the RF nodes 120-2. Accordingly, from the computed estimated distances, a distance order for mobile devices with respect to each RF node emerges; the controller 150 thus finds that the mobile device 140-1 is closer to the RF node 120-1 than is the mobile device 140-2.

Further, in the captured image, the controller detects three people and can determine a relative distance from the camera of each person. Depth information associated with the image can help with this relative distance determination. Because the locations of the RF nodes 120-1, 120-2 relative to each camera and to each other are known, the controller can then provisionally assign identifiers to individuals (i.e., presumably, the mobile device carrying persons). The RSSI values, any signal-strength-based distance calculations, distance orders for mobile devices, and the depth information associated with humans detected in the image, guide these assignments. Other information can further enhance the decision-making process. For instance, the entrance may be sixteen feet in width, which provides an approximate upper bound for possible distances of people from the camera and from the RF nodes and helps establish the locations of persons passing through entrance. The controller can also consider detected gaps in the image between adjacent individuals. Other indicators, such as orientation markers deliberately placed and calibrated within the camera(s)' field of view, such as on a wall or shelf that is above or on either side of the entrance, can assist the determination. Fixed features inherent to the enterprise, examples of which include but are not limited to a pillar, beam, airduct, ceiling tile, pipe, window, door, shelf, and counter, can serve as orientation markers. As another example, the RF node(s) can fall within the camera's field of view at the entrance, and the camera can thus capture the RF node in the same image that captures the plurality of individuals 500. During the image processing, the controller can then use the RF node's location in the image as an orientation point to help determine the location each detected human relative to the RF node.

Further image processing of images captured by the camera can also be employed to resolve any ambiguity. For instance, the controller can attempt to detect mobile devices in the hands of the detected individuals. Detecting a cell phone in one's possession, however, is not conclusive, as the phone may be turned off or it may not be communicating with the personalized navigation system. In addition, not detecting the cellphone in one's possession is likewise inconclusive, for an operating RF-transmitting mobile device phone may be concealed in a person's handbag or pocket. Such information, notwithstanding its inconclusive nature, can be used to increase the confidence level of a correct matching of mobile phones to humans detected in an image.

Based on all its available information, the controller can assign, for example, the mobile device closest to the RF node 120-1 to the person 500-1 in the image closest to the camera, and the mobile device farther from the RF node 120-1 to the person 500-2 next in the image closest to camera. If ambiguity remains (i.e., a confidence level for correct matching does not exceed a threshold), for example, because not all individuals are carrying RF-transmitting mobile devices, such as individual 500-3, or because individuals are walking close to each other, the controller may collect (step 618) additional RSSI information from multiple RF nodes 120-1, 120-2 to determine 2-dimensional range information to each of the mobile phones. Again, the greater the number of RF nodes, the more accurate this range determination. This approximate directional information can be used to calibrate the location of the smartphone-toting individuals within the captured images and distinguish them from an individual who is not carrying a smartphone.

The RSSI measurements from a single RF node (e.g., 120-1) may be enough for the controller to determine relative distance among the mobile devices from that RF node and find the proper match to a human detected in the image. Because the distances from the camera to the RF node, from the RF Node to each mobile device based on RSSI values, and from the camera to each detected human based on depth information, are pre-known or computed, the controller can compute approximate locations of each mobile device and match them to the humans detected in the image. As previously described, other visual orientation markers and/or subsequent visual and RF tracking (via subsequent RSSI information) can aid in the determination.

FIG. 7 shows an embodiment of another process 700 for distinguishing among multiple persons located at the entrance of the business enterprise. At least one of the people is carrying and operating an RF-transmitting mobile device that runs the aforementioned application software (either as a foreground or background service) to communicate with the RF nodes 120 of the business enterprise. For purposes of illustration, consider that the individuals 500-1, 500-2, and 500-3 (FIG. 5 ) are near the entrance. The mobile devices 140-1, 140-2 of the individuals 500-1, 500-2, respectively, communicate (step 702) with the RF nodes 120-1, 120-2, sending them their identifiers, and, at about the same time or momentarily after, the camera 220 captures (step 704) an image with all three individuals in it.

For this process, each RF node 120 has an antenna array and estimates (step 706) an angle of arrival for the radio signal coming from each mobile device 140 and associates that angle of arrival measurement with the corresponding identifier. Each RF node 120 can determine the direction of a RF signal incident on the antenna array by measuring the time difference of arrival (TDOA) of the RF signal at individual antenna of the antenna array. An RF node can make this TDOA measurement by measuring phase difference in the RF signal received by each antenna or antenna element in the antenna array. From these time differences, the RF node can calculate the RF signal's angle of arrival. As used herein, this angle of arrival corresponds to an angular position or angle line for the RF signal source, namely, the mobile device 140. Having angular position data for a given mobile device at two (or more) RF nodes 120 enables computation of an intersection point that corresponds to the location of that mobile device. Approaches other than TDOA for calculating angle of arrival are known in the art and may be used without departing from the principles described herein.

At step 708, the RF nodes send the calculated angle of arrival (i.e., angular position) measurements and their associated identifiers, and the camera sends the captured image, to the controller. The controller associates the captured image with the angular position measurements and associated identifiers because of the near synchronicity of when the camera captured the image and the RF nodes received the RF signals. The controller also knows the relative locations of the RF nodes with respect to each other and to the camera and tracks which RF node sent which angular position measurements.

At step 710, the controller detects the three individuals 500-1, 500-2, 500-3 in the image and determines an angular alignment and/or depth order of the detected individuals with respect to the camera. The angular alignment corresponds to a left-to-right or right-to-left appearance of the individuals in the image. For example, from the perspective of the camera, individual 500-2 is between individuals 500-1 and 500-3 in the image, with individual 500-3 being on the left of individual 500-2 and individual 500-1 on the right of individual 500-2. The determination of depth order may use depth information obtained by the camera or by a depth sensor calibrated to the camera.

The controller can rearrange the angular alignment and/or depth order of humans in the image to be from the perspective of or in respect to each RF node. This rearrangement facilitates comparing the angular alignment of individuals in the image with the angular alignment of the mobile devices according to the angular positions determined by that RF node.

In this example, the controller receives the angular positions and identifier information for only two of the three mobile devices 140-1, 140-2 (FIG. 5 ) captured in the image. The task of the controller is to match each identifier with the proper mobile device, that is, with the appropriate one of the individuals detected in the image.

From the received or computed angular positions, the controller can compute approximate locations of the RF-transmitting sources (i.e., the mobile devices). The greater the number of RF nodes that provide angle of arrival or angular positions, the more precisely the controller can estimate the locations of each mobile device with respect to those RF nodes (e.g., through intersection of angle lines from two RF nodes or through triangulation or multilateration with angle of arrival lines from three or more RF nodes).

Alternatively, or in addition, the controller (step 712) can deduce a left-to-right (or right-to-left) arrangement for the mobile devices based on their corresponding angular positions, without computing relative location or distance estimates. For example, based on the angular positions computed by the RF nodes 120-1, 120-2, the controller determines the mobile device 140-2 to be on the left of mobile device 140-1 from the perspective of the RF node 120-1 and determines the mobile device 140-2 to be on the right of mobile device 140-1 from the perspective of the RF node 120-2.

Using the known locations of the RF nodes 120-1, 120-2 and the camera 220 and camera angles, the controller can compare (step 714) the angular alignment of the persons detected in the image with the angular arrangement or order determined for the mobile devices based on the angular positions provided by the RF nodes 120. Based on the comparison, the controller matches (step 716) identifiers with the detected individuals. For example, the controller can assign the mobile device 140-1 on the right according to the RF node 120-1 to the rightmost person 500-1 in the image, and the mobile device 140-2 on the left according to the RF node 120-1 to the person 500-2 left of person 500-1 in the image. This matching can operate without ambiguity when the number of mobile phones 140 matches the number of persons detected in the image (e.g., if individual 500-3 were not in the captured image). It can also be performed using the angular order determined for the mobile devices based on the angular positions provided by only one of the RF nodes 120, although using more than one RF node improves precision.

Alternatively, or in addition, the controller can compute the location of each mobile device based on the angular positions provided by the RF nodes 120-1, 120-2 (e.g., by computing an intersection of the two angle lines). This location has a depth component (from a reference point, e.g., the camera). The controller can rank the mobile devices in a depth order based on the depth components of the locations computed for the mobile devices. The controller can then match this depth order to a depth order of the individuals in the captured image.

As an aid to the correct matching of mobile devices to individuals (or individuals to mobile devices), particularly when individuals, such as individual 500-3, who are not using a mobile device may cause ambiguity, the controller can collect (step 718) RSSI information from multiple RF nodes 120-1, 120-2, to determine 2-dimensional range information to each of the mobile phones and to match individuals to mobile devices as previously described. Thus, the controller can use the signal strength information to supplement the matching based on angle of arrival computations. Again, the greater the number of RF nodes, the more accurate this RSSI-based range determination. This approximate distance information can also be used to calibrate the location of the smartphone-toting individuals within the captured images and distinguish them from an individual who is not carrying a smartphone (e.g., individual 500-3).

As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method, and computer program product. Thus, aspects of the present invention may be embodied entirely in hardware, entirely in software (including, but not limited to, firmware, program code, resident software, microcode), or in a combination of hardware and software. In addition, aspects of the present invention may be in the form of a computer program product embodied in one or more computer readable media having computer readable program code stored thereon.

Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. The computer readable medium may be a non-transitory computer readable storage medium, examples of which include, but are not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination thereof.

As used herein, a computer readable storage medium may be any tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, device, computer, computing system, computer system, or any programmable machine or device that inputs, processes, and outputs instructions, commands, or data. A non-exhaustive list of specific examples of a computer readable storage medium include an electrical connection having one or more wires, a portable computer diskette, a floppy disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), a USB flash drive, an non-volatile RAM (NVRAM or NOVRAM), an erasable programmable read-only memory (EPROM or Flash memory), a flash memory card, an electrically erasable programmable read-only memory (EEPROM), an optical fiber, a portable compact disc read-only memory (CD-ROM), a DVD-ROM, an optical storage device, a magnetic storage device, or any suitable combination thereof.

A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. As used herein, a computer readable storage medium is not a computer readable propagating signal medium or a propagated signal.

Program code may be embodied as computer-readable instructions stored on or in a computer readable storage medium as, for example, source code, object code, interpretive code, executable code, or combinations thereof. Any standard or proprietary, programming or interpretive language can be used to produce the computer-executable instructions. Examples of such languages include C, C++, Pascal, JAVA, BASIC, Smalltalk, Visual Basic, and Visual C++.

Transmission of program code embodied on a computer readable medium can occur using any appropriate medium including, but not limited to, wireless, wired, optical fiber cable, radio frequency (RF), or any suitable combination thereof.

The program code may execute entirely on a user's device, such as the mobile device 140, partly on the user's device, as a stand-alone software package, partly on the user's device and partly on a remote computer or entirely on a remote computer or server. Any such remote computer may be connected to the user's device through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet, using an Internet Service Provider).

Additionally, the methods of this invention can be implemented on a special purpose computer, a programmed microprocessor or microcontroller and peripheral integrated circuit element(s), an ASIC or other integrated circuit, a digital signal processor, a hard-wired electronic or logic circuit such as discrete element circuit, a programmable logic device such as PLD, PLA, FPGA, PAL, or the like. In general, any device capable of implementing a state machine that is in turn capable of implementing the proposed methods herein can be used to implement the principles of this invention.

Furthermore, the disclosed methods may be readily implemented in software using object or object-oriented software development environments that provide portable source code that can be used on a variety of computer or workstation platforms. Alternatively, the disclosed system may be implemented partially or fully in hardware using standard logic circuits or a VLSI design. Whether software or hardware is used to implement the systems in accordance with this invention is dependent on the speed and/or efficiency requirements of the system, the particular function, and the particular software or hardware systems or microprocessor or microcomputer systems being utilized. The methods illustrated herein however can be readily implemented in hardware and/or software using any known or later developed systems or structures, devices and/or software by those of ordinary skill in the applicable art from the functional description provided herein and with a general basic knowledge of the computer and image processing arts.

Moreover, the disclosed methods may be readily implemented in software executed on programmed general-purpose computer, a special purpose computer, a microprocessor, or the like. In these instances, the systems and methods of this invention may be implemented as program embedded on personal computer such as JAVA® or CGI script, as a resource residing on a server or graphics workstation, as a plug-in, or the like. The system may also be implemented by physically incorporating the system and method into a software and/or hardware system.

Having described above several aspects of at least one embodiment, it is to be appreciated various alterations, modifications, and improvements will readily occur to those skilled in the art. Such alterations, modifications, and improvements are intended to be part of this disclosure and are intended to be within the scope of the invention. Embodiments of the methods and apparatuses discussed herein are not limited in application to the details of construction and the arrangement of components set forth in the foregoing description or illustrated in the accompanying drawings. The methods and apparatuses are capable of implementation in other embodiments and of being practiced or of being carried out in various ways. Examples of specific implementations are provided herein for illustrative purposes only and are not intended to be limiting. Also, the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use herein of “including,” “comprising,” “having,” “containing,” “involving,” and variations thereof is meant to encompass the items listed thereafter and equivalents thereof as well as additional items. References to “or” may be construed as inclusive so that any terms described using “or” may indicate any of a single, more than one, and all the described terms. Any references to front and back, left and right, top and bottom, upper and lower, and vertical and horizontal are intended for convenience of description, not to limit the present systems and methods or their components to any one positional or spatial orientation. Accordingly, the foregoing description and drawings are by way of example only, and the scope of the invention should be determined from proper construction of the appended claims, and their equivalents. 

1. (canceled)
 2. (canceled)
 3. A system for determining, a location of a mobile device, comprising: two or more radio frequency (RF) nodes, each of the two or more RF nodes having at least one antenna for receiving electromagnetic signals from a mobile device, the electromagnetic signals including an identifier, wherein the each of the two or more RF nodes computes a distance estimation computation with respect to the mobile device and associates the distance estimation computation with the identifier; and a controller in communication with the two or more RE nodes that determines an identity and a position of the mobile device based on the identifier and the distance estimation computations computed by the two or more RE nodes.
 4. The system of claim 3, further comprising a camera that captures an image of a user of the mobile device, wherein the controller processes the image with the identifier and the distance estimation computations to determine the position of the mobile device with respect to each of the two or more RE nodes.
 5. The system of claim 3, wherein the distance estimation computation computed by the each of the two or more RF nodes includes a time of arrival computation.
 6. The system of claim 5, wherein the controller is further configured to: compute a location for the mobile device based on the time of arrival of an electromagnetic signal received by each node of the two or more RF nodes; arrange the mobile device in an order based on the computed location of the transmitting device; arrange one or more objects and/or people captured in the image into a depth order based on relative positions of the one or more objects and/or people detected in the captured image; and compare the depth order of objects and/or people detected in the image with the order of the mobile device when assigning the identity of the mobile device to one person detected in the captured image.
 7. The system of claim 4, wherein the controller is further configured to: assign identification information of the electromagnetic signals and associated with a person to s human detected in an image captured by the camera; compute a location of the person in a building based on the electromagnetic signals transmitted by the mobile device carried by the person; enhance the computed location of the person in the building based on inertial data included in the electromagnetic signals transmitted by the mobile device carried by the person; determine a current position of the person in the building based on the image captured of the human; and track the person through the building by supplementing the current position of the person in the building that is determined based on the image captured of the human with the computed location of the person in the building that is enhanced by the inertial data included in the electromagnetic signals transmitted by the mobile device carried by the person.
 8. A system for determining a location of a mobile device, comprising: two or more radio frequency (RE) nodes, each of the two or more nodes having at least one antenna for receiving electromagnetic signals from a mobile device, the electromagnetic signals including an identifier, wherein the each of the two or more RF nodes computes a time of arrival computation with respect to the mobile device and associates the distance estimation computation with the identifier; and a controller in communication with the two or more RF nodes that determines an identity and a position of the mobile device based on the identifier and the time of arrival computations computed by the two or more nodes.
 9. The system of claim 8, further comprising a camera that captures an image of a user of the mobile device, wherein the controller processes the image with the identifier and the time of arrival computations to determine the position of the mobile device with respect to each of the two or more RF nodes.
 10. The system of claim 8, wherein the controller is further configured to: compute a location for the mobile device based on the time of arrival of an electromagnetic signal received by each node of the two or more RF nodes; arrange the mobile device in an order based on the computed location of the transmitting device; arrange one or more objects and/or people captured in the image into a depth order based on relative positions of the one or more objects and/or people detected in the captured image; and compare the depth order of objects and/or people detected in the image with the order of the mobile device when assigning the identity of the mobile device to one person detected in the captured image.
 11. The system of claim 8, wherein the controller is further configured to: assign identification information of the electromagnetic signals and associated with a person to s human detected in an image captured by the camera; compute a location of the person in a building based on the electromagnetic signals transmitted by the mobile device carried by the person; enhance the computed location of the person in the building based on inertial data included in the electromagnetic signals transmitted by the mobile device carried by the person; determine a current position of the person in the building based on the image captured of the human; and track the person through the building by supplementing the current position of the person in the building that is determined based on the image captured of the human with the computed location of the person in the building that is enhanced by the inertial data included in the electromagnetic signals transmitted by the mobile device carried by the person.
 12. A method for determining a location of a mobile device, comprising: receiving, by two or more radio frequency (RF) nodes, electromagnetic signals from a mobile device, the electromagnetic signals including an identifier; computing, by the each of the two or more RF nodes, a distance estimation computation with respect to the mobile device and associates the distance estimation computation with the identifier; and determining an identity and a position of the mobile device based on the identifier and the distance estimation computations computed by the two or more nodes.
 13. A system for determining a location of a mobile device, comprising: a plurality of radio frequency (RF) nodes, each having an antenna capable of receiving a radio signal from a RF device, wherein at least one of the RF nodes receives and processes the radio signal in response to determining that a signal strength of the radio signal satisfies a threshold, wherein the radio signal includes an identifier of a user of the RF device; a controller in communication with the RF node that estimates a distance of the RF device from the RF node based on the radio signal and using the estimated distance and the identifier to determine an identity of the user.
 14. The system of claim 13, further comprising a camera, wherein the controller being further configured to detect a plurality of RF devices in an image obtained by the controller from the camera, and to assign the identity of the RF devices detected in the image, thereby identifying each individual RF device located optically as the RF device moves throughout the building.
 15. The system of claim 14, wherein the controller processes the image with the identifier and the estimated distance to determine the position of the RF device with respect to each of the plurality of RF nodes.
 16. The system of claim 13, wherein the controller is further configured to: compute a location for the RF device based on a receipt of an electromagnetic signal received by each node of the two or more RF nodes; arrange the RF device in an order based on the computed location of the RF device; arrange one or more objects and/or people captured in the image into a depth order based on relative positions of the one or more objects and/or people detected in the captured image; and compare the depth order of objects and/or people detected in the image with the order of the mobile device when assigning the identity of the mobile device to one person detected in the captured image.
 17. The system of claim 16, wherein the controller is further configured to: assign identification information of the electromagnetic signals and associated with the RF device detected in an image captured by the camera; compute a location of the RF device in a building based on the electromagnetic signals transmitted by the RF device; enhance the computed location of the RF device in the building based on inertial data included in the electromagnetic signals transmitted by the RF device; determine a current position of the RF device in the building based on the image captured of the device; and track the RF device through the building by supplementing the current position of the RF device in the building that is determined based on the image captured of the human with the computed location of the RF device in the building that is enhanced by the inertial data included in the electromagnetic signals transmitted by the RF device. 